import { ApiProperty } from '@nestjs/swagger';
import { IsNotEmpty, IsString, MaxLength, MinLength } from 'class-validator';

export class CreateUserDTO {
  @ApiProperty({ example: 'user1', description: '账户名' })
  @IsNotEmpty({ message: '账户名不能为空' })
  @IsString({ message: '账户名必须是字符串' })
  @MaxLength(20, { message: '账户名长度不能超过20' })
  account: string;

  @ApiProperty({ example: 'password123', description: '用户密码' })
  @IsNotEmpty({ message: '密码不能为空' })
  @IsString({ message: '密码必须是字符串' })
  @MinLength(6, { message: '密码长度不能少于6' })
  @MaxLength(20, { message: '密码长度不能超过20' })
  password: string;

  @ApiProperty({ example: '用户1', description: '用户名称' })
  @IsNotEmpty({ message: '用户名称不能为空' })
  @IsString({ message: '用户名称必须是字符串' })
  @MaxLength(20, { message: '用户名称长度不能超过20' })
  name: string;

  @ApiProperty({ example: 'user', description: '用户角色' })
  @IsNotEmpty({ message: '用户角色不能为空' })
  @IsString({ message: '用户角色必须是字符串' })
  role: string;
}